#include <iostream>
using std::cout;
using std::endl;

struct FunctionObject{
    int operator()(){
        cout << "operator()()" << endl;
        return 1;
    }

    void operator()(int x){
        cout << "operator()(int):" << x << endl; 
    }
};

void test0(){
    FunctionObject fo;
    cout << fo() << endl;
    fo(3);
}

int main(void){
    test0();
    return 0;
}
